/**
 * 提示消息框的状态控制模块。
*/
/**
   * 提示组件需要有的内容：
   * 1. 提示的信息
   * 2. 提示需要不同的类型
  */
export default {
    namespaced:true,
    state:{
        isShowToast:false, //是否显示提示信息框
        toastMsg: "小明好帅",  // 当前提示框的信息内容
        toastType: "success",  // 当前提示框的类型（success, danger, info, warning）
    },
    mutations:{
        changeIsShowToast(state,payload){
            // console.log(payload);
            state.isShowToast = payload.isShow;

            // 如果本次操作为显示提示时，才更新提示的信息与类型
            if(state.isShowToast) {
                state.toastMsg = payload.msg;
                state.toastType = payload.type;
            }

            // 由于mutations不应该写异步的内容，所以setTimeout不写在这里
            // setTimeout(()=>{
            //     state.isShowToast = false
            // },1500)
        }
    },
    actions:{
        // 修改消息提示框数据的方法，包含自动关闭
        asyncIsShowToast(context, payload){
            context.commit("changeIsShowToast", payload)

            setTimeout(()=>{
                context.commit("changeIsShowToast", {
                    isShow:false
                })
            },1500)
        },

        asyncIsShowToast2({state}, payload){
            // console.log(payload);
            state.isShowToast = payload.isShow;

            // 如果本次操作为显示提示时，才更新提示的信息与类型
            if(state.isShowToast){
                state.toastMsg = payload.msg;
                state.toastType = payload.type;
            }

            setTimeout(()=>{
                state.isShowToast = false
            },1500)
        }
    }
}
